Current printer systems rely on software mechanisms called printer drivers to control printing applications. In a typical networked computer application, the printer drivers are located on either local personal computers or network print servers. In a standalone configuration, the printer drivers are installed on a personal computer (PC). The printer drivers specify the manner in which the printing application is to be completed, and provide the user at the local terminal with various print options.
Currently, printer manufacturers develop printer drivers that are specific to a printer model and specific to each of the operating systems with which the printer will interface. The most widely used operating system in PCs is Windows®. An earlier, popular system was the disk operating system (DOS®). Both Windows® and DOS® are products of the Microsoft Corporation, Redmond, Wash. The DOS® operating system requires that applications include an embedded printer driver module that enables communications with a connected printer. An application, therefore, must have embedded in it an appropriate printer driver for a connected printer. If two or more printers of different kinds are connected to a computer having DOS® applications, each application requiring use of the printers must include embedded printer drivers for each printer type. By contrast, the Windows® operating system employs separate printer driver modules and all applications written for a Windows operating system are enabled to employ a printer driver module in a generic manner. Thus, Windows® applications have a standard interface that matches the preexisting printer driver module. If a computer is required to interface with two or more different types of printers, each requiring a separate printer driver, the Windows® operating system will require a printer driver module for each of the different type printers.
Other computers may use the Macintosh® operating systems, UNIX®, and other mechanisms. All these different operating systems, and the variations thereof, may require different printer drivers. For example, a Hewlett-Packard laser printer will have one printer driver for Windows® 95, but that printer driver will not work with the Macintosh® operating system. As a result, printers that support personal computers (PC) typically do not support Macintosh®. As a result, printer manufacturers typically make drivers for PCs and different drivers for Macintosh®. Developing, testing and marketing the different versions of the printer driver software is very expensive. In addition, delivery of the printer drivers to customers is expensive, and customers do not want to pay additional costs associated with software to allow printing.
Updates may be required because of changes to printer design, which is within the control of the printer manufacturer. Such updates may involve updating driver functionality and printer functionality. Other updates may be mandated because of changes or improvements in printer-related products and services. Some of these changes may also be controllable by the printer manufacturer. For example, a printer manufacturer may have a separate division that develops printer papers. The paper division may develop a new coating on photo glossy paper. Such paper may require modifications to the printer driver in order for a customer to print using the paper.
Some manufacturers have attempted to deliver printer driver upgrades over public networks, such as the Internet. However, such delivery mechanisms may fail if customers are not aware of the availability of the software, or if the customers install the software incorrectly.
Traditional PC printer drivers are designed to be used on the PC where the application that is generating the print request resides. One such driver system is shown in FIG. 1A. A PC with an operating system 10 may host an application 12 that converts desired print data into graphical device interface (GDI) 14 or other text commands and graphics primitives with associated page positions and/or forms controls. A print job may be spooled 16 (i.e., stored) to allow the user to resume working with the application 12. These commands may be formatted by a printer driver 20 into a recognizable industry defined data definition (e.g. printer control language (PCL)) or the printer driver 20 may use the application 12 and/or platform intermediate commands (e.g., Windows® GDI primitives) and act on these commands to create internal direct printer commands 25 to control a printer 30. The printer 30 does not necessarily need to be physically attached to the PC where the application 12 and the printer driver 20 reside, but may be remotely located such as on a local area network (LAN) (not shown).
One benefit of having a PC-side printer driver system is the movement of the processing into the PC itself (rather than at the printer), thereby permitting more flexibility and control. Another benefit of this system is that more advanced functions are possible by using a more powerful host PC, while permitting cost minimization of the printer hardware itself.
As one tries to fit the traditional host based printer driver models into a networked computer model (as shown in FIG. 1B), problems may occur because of limitation of the networked computers. These problems may be the result of limited random access memory (RAM) (to minimize costs). In contrast, almost all standard PC printer drivers use local spooling to the local permanent storage. If the RAM in a networked computer is limited, then there may be insufficient memory for the driver, application, and print data, especially if the print job entails color bitmaps or complex graphics images to be printed. Also, many networked computer devices that are being developed today have different operating systems and have different API and/or GDI interface definitions, which makes developing a printer driver extremely cumbersome.
Traditional printing implementations of networked computers 50 (see FIG. 1B) have followed the standard printing model. For example, in the networked computer system, a server 60 is used to load applications 12, communicate with the network, and store data needed by the networked computers 50. The networked computers 50 run the application 12, which might request printing. The other implementation details are the same as in the standard printing model for PCs (see FIG. 1A).
The benefits of this traditional networked computer printing model are that it is similar to current driver models and that user interface models are already known by platform. However, the networked computer system suffers from all the limitations described above for a PC system. In addition, the networked computer system raises other problems, such as severe memory and graphics limits on the networked computers. Also, networked computer hardware differences present unique issues with respect to operation of software thereon and the hardware that may be connected to a networked computer system. Furthermore, in a networked computer system where multiple networked computers are connected using a file server or interconnecting network to multiple printers, a number of administrative problems arise that are not present when a single PC is connected to a single printer. For example, if a new printer type is added to the networked computer system, each networked computer must be informed of the network configuration change and a new printer driver must be installed on each networked computer for the new print device. Otherwise, the networked computers are not able to use the newly added print device. Further, as new printer drivers are provided by manufacturers to correct previously discovered defects or to provide enhancements to previous printer drivers, each networked computer must receive a new printer driver. These actions can cause substantial network interruption while the new printer drivers are being installed.
In a network of the nature described above, wherein client computers employ the Windows® operating system, a separate file server installation is often used to enable communications between the client computers and network-connected printers. In order to determine network print function availability, a user of a client computer must have detailed information regarding precisely where to inquire to access network status information. In a network operating under the NetWare® environment (Novell Corporation, Provo, Utah), there are many pieces of status information that, together, affect an overall print operation. For instance, the Novell print server and queue management system both evidence status information regarding printer availability; however, their status information can only be accessed by knowing where (and how) to inquire. Further, even if the user knows how to obtain network status information, it is up to the user to understand the meaning of the status information.